package org.theSeed.fileContract.pojo.prop;

import cn.hutool.core.util.ObjectUtil;
import lombok.Getter;
import lombok.Setter;
import org.theSeed.base.exp.BuzExp;
import org.theSeed.base.exp.ServiceExp;
import org.theSeed.fileContract.contract.FileContract;
import org.theSeed.fileContract.exp.FileUploadExp;

/**
 * 文件配置
 */
@Getter
@Setter
public abstract class FileConfigProp {
    /**
     * 文件上传实现类
     */
    private String fileContractClazzName;

    /**
     * 参数校验
     */
    public void checkParam(){
        if (ObjectUtil.isNull(fileContractClazzName))
            throw new FileUploadExp("文件上传配置:fileContractClazzName属性不能为空");
        checkImplParam();
    }

    /**
     * 子实现参数校验
     */
    public abstract void checkImplParam();

    /**
     * 创建文件上传实例
     */
    public abstract FileContract createFileContract(String contractTypeInstance,Long chipFileSize);
}
